Computer graphics for portable personal computers (PCs) has been greatly improved over the last few years. Embedded dynamic-random-access memory (DRAM) graphics memory has significantly increased the graphics bandwidth, enabling higher resolutions and 3D graphics. See Puar et al., "Graphics Controller Integrated Circuit Without Memory Interface", U.S. Pat. Nos. 5,650,955 and 5,703,806, assigned to NeoMagic Corp. These embedded-DRAM graphics controllers have been used predominantly for portable PC's such as laptop and notebook PCs.
Another attempt to increase graphics bandwidth is a high-speed graphics bus developed by Intel Corp. of Santa Clara, Calif. and others. This bus is known as the accelerated graphics port (AGP). See U.S. Pat. No. 5,859,989 by Olarig et al., and assigned to Compaq Computer Corp.
FIG. 1 is a diagram of a PC with an AGP bus and a 3D graphics accelerator. A microprocessor or central processing unit (CPU) 10 reads and writes main memory 12 through system-logic chip set 16. Peripherals such as disk 18 can be accessed over peripheral component interconnect (PCI) bus 28.
AGP bus 26 is a high-speed expansion bus, typically with only one expansion connector or slot, thus limiting bus loading and increasing speed. Signals on AGP bus 26 are generated by system-logic chip set 16 when CPU 10 accesses graphics accelerator 20 that is plugged into AGP bus 26. Graphics accelerator 20 drives pixels to display 30 and for higher-performance systems may include a three-dimensional 3D graphics engine. These pixels are stored in frame buffer 22 on the graphic card.
The AGP model includes several modes of operation. A portion of main memory 12 may be set aside as AGP memory 14. Textures and Z-buffer data or off-screen surfaces may be stored in AGP memory 14 for use by the graphics system. In particular, 3D surface textures may be stored in AGP memory 14 and later transferred to temporary texture memory 23 on the graphics controller card.
One AGP model, known as the AGP Execute model, has 3D graphics accelerator 20 accessing textures and other surfaces from AGP memory 14 through system-logic chip set 16, over AGP bus 26. The use of the textures from AGP memory 14 is transparent to high-level applications such as 3D computer games. Texture use from AGP memory is just like the use of the texture from local video memory.
Unfortunately, 3D graphics accelerator 20 must have additional hardware to directly access textures from AGP memory 14. This extra hardware adds to the expense and complexity of 3D graphics accelerator 20 and is thus undesirable.
Another AGP model is known as the AGP DMA model. This model does not require the 3D graphics engine to directly access the AGP texture memory. It only has the capability to move the textures from AGP memory 14 to temporary texture memory 23 using a high-speed DMA transfer and the ability to access/render textures in local video memory. Using the DMA hardware through the 3D driver, the high-level application program must perform additional steps to transfer textures from AGP memory 14. Most high-level application programs do not include such steps and thus cannot take advantage of temporary texture memory 23. Only newer application programs that are specifically written for AGP can take advantage of the AGP DMA model.